package com.wh.wisdomsite.xbox.utils;

//import org.codehaus.xfire.client.Client;


/***
 * 身份证信息查询工具
 * @Package com.wh.wisdomsite.xbox.entity.client
 * @author 谢泽鹏
 * @date 2016年11月07日 下午15:10
 * @Copyright 个人版权所有
 * @Company 贵州万华科技有限公司Copyright (c) 2016
 * @version V1.0
 */
public class ID5Util {

//	private static Client client = null;
//
//    /** 定义全局自定义配置变量 */
//    //public static Properties properties;
//
//
//	/**
//     * 查询身份证和姓名是否匹配
//	 * @param idCode 身份证号
//	 * @param name 姓名
//	 * @return
//	 * @throws Exception
//	 * @throws java.net.MalformedURLException
//	 */
//	public static boolean checkIdCodeAndName(String name, String idCode) throws MalformedURLException, Exception{
//		init();
//		String queryInfo = buildQueryInfo(idCode, name);
//		Object[] results = excuteQuery(queryInfo);
//		return checkResult( results);
//	}
//
//	/**
//	 * 初始化webService
//	 *
//	 * */
//	public static void init() throws MalformedURLException, Exception{
//		if(client == null){
//			client = new Client(new URL(Const.ID5_URL));
//		}
//	}
//	/**
//	 * 执行实名查询方法，返回查询结果
//	 * @param queryInfo 查询信息
//	 * @return 查询结果
//	 *
//	 * */
//	public static Object[] excuteQuery(String queryInfo) throws MalformedURLException, Exception{
//		Object[] results = client.invoke("queryReport", new Object[] {Const.ID5_USERNAME, Const.ID5_PASSWORD, queryInfo, "xml" });
//		return results;
//	}
//	/**
//	 * 实名认证方法,将返回结果分析，是否验证成功
//	 * @param results 实名认证结果
//	 * @return boolean 认证是否成功
//	 *
//	 * */
//	public static boolean checkResult(Object[] results) throws SAXException, IOException, ParserConfigurationException{
//		DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
//		Document result = dbf.newDocumentBuilder().parse(new InputSource(new StringReader("<?xml version=\"1.0\" encoding=\"GB2312\" ?>" + results[0])));
//        Document doc = (Document)result;
//        Element element = doc.getDocumentElement();
//        NodeList children = element.getChildNodes();
//        Node node = children.item(3);
//        String message = node.getTextContent();
//        dbf.setNamespaceAware(true);
//        result = dbf.newDocumentBuilder().parse(new InputSource(new StringReader(message)));
//        String resultString = result.getDocumentElement().getTextContent();
//        if(resultString.indexOf("报告查询数量已达到上限") != -1){
//        	throw new RuntimeException("暂无法完成实名认证：认证信息查询帐号已欠费。");
//        }
//        Document cisReportsDoc = dbf.newDocumentBuilder().parse(new InputSource(new StringReader(message)));
//        NodeList nodeList = cisReportsDoc.getChildNodes();
//        Node policeCheckInfoNode = recursion(nodeList.item(0), "policeCheckInfo");
//        String errorMessage = policeCheckInfoNode.getAttributes().getNamedItem("errorMessage").getNodeValue();
//        String treatResult = policeCheckInfoNode.getAttributes().getNamedItem("treatResult").getNodeValue();
//        if(treatResult.equals("1")){
//            return true;
//        }else{
//            throw new RuntimeException(errorMessage);
//        }
//        /*if(errorMessage.equals("")){
//        	return true;
//        }else{
//        	throw new RuntimeException(errorMessage);
//        }*/
//	}
//	/**
//	 * 递归遍历xml节点，查找标签名为 targetNodeName，返回该标签
//	 * @param parentNode 对象
//	 * @param targetNodeName 标签名
//	 * @return Node 对象
//	 *
//	 * */
//	public static Node recursion(Node parentNode, String targetNodeName){
//		if(parentNode.getNodeName().equals(targetNodeName)){
//			return parentNode;
//		}
//		NodeList children = parentNode.getChildNodes();
//		if(children == null || children.getLength() == 0){
//			return null;
//		}
//		for (int i = 0; i < children.getLength(); i++) {
//			Node node = recursion(children.item(i), targetNodeName);
//			if(node != null){
//				return node;
//			}
//		}
//		return null;
//	}
//
//	/**生成查询信息
//	 * @param idCode 身份证号
//	 * @param name 姓名
//	 * @return
//	 */
//	public static String buildQueryInfo(String idCode, String name){
//		StringBuffer xmlInfo = new StringBuffer();
//		xmlInfo
//		.append("<?xml version=\"1.0\" encoding=\"GB2312\" ?>")
//		.append("<conditions>")
//		.append("<condition queryType=\"25121\">")
//		.append("<item>")
//		.append("<name>name</name>")
//		.append("<value>" + name + "</value>")
//		.append("</item>")
//		.append("<item>")
//		.append("<name>documentNo</name>")
//		.append("<value>" + idCode + "</value>")
//		.append("</item>")
//		.append("<item>")
//		.append("<name>subreportIDs</name>")
//		.append("<value>10602</value>")
//		.append("</item>")
//		.append("<item>")
//		.append("<name>refID</name>")
//		.append("<value>1</value>")
//		.append("</item>")
//		.append("</condition>")
//		.append("</conditions>");
//		return xmlInfo.toString();
//	}
}
